import * as svgCaptcha from "svg-captcha";
import Config from "@/base/Config";

/**
 * 验证码创建类
 */
export class CaptchaUtils {

    /**
     * 无参创建字符验证码
     * @returns -{ text: 文本, data: 图片 }
     */
    static create(): svgCaptcha.CaptchaObj {
        const captcha = svgCaptcha.create()
        return captcha;
    }

    /**
     * 配置项创建字符验证码
     * @param option 验证码配置项
     * @returns -{ text: 文本, data: 图片 }
     */
    static createByOp(option: svgCaptcha.ConfigObject): svgCaptcha.CaptchaObj {
        const captcha = svgCaptcha.create(option)
        return captcha;
    }

    /**
     * 获取n个长度的随机字符串
     * @param num 数值
     * @returns 字符串
     */
    static randomText(num: number): string {
        const str = svgCaptcha.randomText(num);
        return str
    }

    /**
     * 无参创建算法验证码
     * @returns -{ text: 文本, data: 图片 }
     */
    static createMathExpr(): svgCaptcha.CaptchaObj {
        const captcha = svgCaptcha.createMathExpr(Config.CAPTCHA)
        return captcha
    }

    /**
     * 配置项创建算法验证码
     * @param option 验证码配置项
     * @returns -{ text: 文本, data: 图片 }
     */
    static createMathExprByOp(option: svgCaptcha.ConfigObject): svgCaptcha.CaptchaObj {
        const captcha = svgCaptcha.createMathExpr(option)
        return captcha
    }
}